package com.smart.agent.remote;

import com.smart.agent.tools.json.JsonHelper;

/**
 * 远程控制工厂
 */
public class RemoteFactory {
    private RemoteFactory() {
    }

    /**
     * 创建远程控制对象
     * @param action 远程控制需要执行的内容，JsonHelper 格式
     * @return
     */
    public static Remote create(JsonHelper action) {
        String cmd = action.getString("$.cmd");
        if (cmd == null) {
            throw new IllegalArgumentException("未找到远程控制命令（没有 cmd 字段）。" + action.toString());
        }

        if (cmd.equalsIgnoreCase("RemoteCall")) {
            return new RemoteCall(action);
        } else {
            throw new IllegalArgumentException("未支持的远程控制命令，cmd: " + cmd + ", " + action.toString());
        }
    }

    /**
     * 创建远程控制对象
     * @param action 远程控制需要执行的内容，String 格式
     * @return
     */
    public static Remote create(String action) {
        return create(new JsonHelper(action));
    }

}

